home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / PInterfaces / Dialogs.p < prev    next >
Encoding:
Text File  |  1994-11-11  |  11.5 KB  |  432 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Dialogs.p
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. }
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Dialogs;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __DIALOGS__}
  27. {$SETC __DIALOGS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC DialogsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __ERRORS__}
  35. {$I Errors.p}
  36. {$ENDC}
  37. {    ConditionalMacros.p                                            }
  38.  
  39. {$IFC UNDEFINED __MEMORY__}
  40. {$I Memory.p}
  41. {$ENDC}
  42. {    Types.p                                                        }
  43. {    MixedMode.p                                                    }
  44.  
  45. {$IFC UNDEFINED __WINDOWS__}
  46. {$I Windows.p}
  47. {$ENDC}
  48. {    Quickdraw.p                                                    }
  49. {        QuickdrawText.p                                            }
  50. {    Events.p                                                    }
  51. {        OSUtils.p                                                }
  52. {    Controls.p                                                    }
  53. {        Menus.p                                                    }
  54.  
  55. {$IFC UNDEFINED __TEXTEDIT__}
  56. {$I TextEdit.p}
  57. {$ENDC}
  58.  
  59. {$PUSH}
  60. {$ALIGN MAC68K}
  61. {$LibExport+}
  62.  
  63. CONST
  64.     ctrlItem                    = 4;
  65.     btnCtrl                        = 0;
  66.     chkCtrl                        = 1;
  67.     radCtrl                        = 2;
  68.     resCtrl                        = 3;
  69.     statText                    = 8;
  70.     editText                    = 16;
  71.     iconItem                    = 32;
  72.     picItem                        = 64;
  73.     userItem                    = 0;
  74.     itemDisable                    = 128;
  75.     ok                            = 1;
  76.     cancel                        = 2;
  77.     stopIcon                    = 0;
  78.     noteIcon                    = 1;
  79.     cautionIcon                    = 2;
  80.  
  81. { new, more standard names for dialog item constants }
  82.     kControlDialogItem            = ctrlItem;
  83.     kButtonDialogItem            = btnCtrl;
  84.     kCheckBoxDialogITem            = chkCtrl;
  85.     kRadioButtonDialogItem        = radCtrl;
  86.     kResourceControlDialogItem    = resCtrl;
  87.     kStaticTextDialogItem        = statText;
  88.     kEditTextDialogItem            = editText;
  89.     kIconDialogItem                = iconItem;
  90.     kPictureDialogItem            = picItem;
  91.     kUserDialogItem                = userItem;
  92.     kIDODialogItem                = 24;
  93.     kItemDisableBit                = itemDisable;
  94.     kOkItemIndex                = ok;
  95.     kCancelItemIndex            = cancel;
  96.     kStopIcon                    = stopIcon;
  97.     kNoteIcon                    = noteIcon;
  98.     kCautionIcon                = cautionIcon;
  99.  
  100.     
  101. TYPE
  102.     DITLMethod = INTEGER;
  103.  
  104.  
  105. CONST
  106.     overlayDITL                    = 0;
  107.     appendDITLRight                = 1;
  108.     appendDITLBottom            = 2;
  109.  
  110.     
  111. TYPE
  112.     StageList = INTEGER;
  113.  
  114.     DialogPropertyTag = OSType;
  115.  
  116. {$IFC STRICT_WINDOWS }
  117.     DialogPtr = Ptr;
  118.  
  119.     DialogRef = Ptr;
  120.  
  121. {$ELSEC}
  122.     DialogPtr = WindowPtr;
  123.  
  124.     DialogRef = DialogPtr;
  125.  
  126. {$ENDC}
  127.     SoundProcPtr = ProcPtr;  { PROCEDURE Sound(soundNumber: INTEGER); }
  128.     ModalFilterProcPtr = ProcPtr;  { FUNCTION ModalFilter(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER): BOOLEAN; }
  129.     UserItemProcPtr = ProcPtr;  { PROCEDURE UserItem(theWindow: WindowPtr; itemNo: INTEGER); }
  130.     SoundUPP = UniversalProcPtr;
  131.     ModalFilterUPP = UniversalProcPtr;
  132.     UserItemUPP = UniversalProcPtr;
  133.  
  134. CONST
  135.     uppSoundProcInfo = $00000080; { PROCEDURE (2 byte param); }
  136.     uppModalFilterProcInfo = $00000FD0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 1 byte result; }
  137.     uppUserItemProcInfo = $000002C0; { PROCEDURE (4 byte param, 2 byte param); }
  138.  
  139. FUNCTION NewSoundProc(userRoutine: SoundProcPtr): SoundUPP;
  140.     {$IFC NOT GENERATINGCFM }
  141.     INLINE $2E9F;
  142.     {$ENDC}
  143.  
  144. FUNCTION NewModalFilterProc(userRoutine: ModalFilterProcPtr): ModalFilterUPP;
  145.     {$IFC NOT GENERATINGCFM }
  146.     INLINE $2E9F;
  147.     {$ENDC}
  148.  
  149. FUNCTION NewUserItemProc(userRoutine: UserItemProcPtr): UserItemUPP;
  150.     {$IFC NOT GENERATINGCFM }
  151.     INLINE $2E9F;
  152.     {$ENDC}
  153.  
  154. PROCEDURE CallSoundProc(soundNumber: INTEGER; userRoutine: SoundUPP);
  155.     {$IFC NOT GENERATINGCFM}
  156.     INLINE $205F, $4E90;
  157.     {$ENDC}
  158.  
  159. FUNCTION CallModalFilterProc(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; userRoutine: ModalFilterUPP): BOOLEAN;
  160.     {$IFC NOT GENERATINGCFM}
  161.     INLINE $205F, $4E90;
  162.     {$ENDC}
  163.  
  164. PROCEDURE CallUserItemProc(theWindow: WindowPtr; itemNo: INTEGER; userRoutine: UserItemUPP);
  165.     {$IFC NOT GENERATINGCFM}
  166.     INLINE $205F, $4E90;
  167.     {$ENDC}
  168. {$IFC NOT STRICT_WINDOWS }
  169.  
  170. TYPE
  171.     DialogRecord = RECORD
  172.         window:                    WindowRecord;
  173.         items:                    Handle;
  174.         textH:                    TEHandle;
  175.         editField:                INTEGER;
  176.         editOpen:                INTEGER;
  177.         aDefItem:                INTEGER;
  178.     END;
  179.     DialogPeek = ^DialogRecord;
  180.  
  181. {$ENDC}
  182.  
  183. TYPE
  184.     DialogTemplate = RECORD
  185.         boundsRect:                Rect;
  186.         procID:                    INTEGER;
  187.         visible:                BOOLEAN;
  188.         filler1:                BOOLEAN;
  189.         goAwayFlag:                BOOLEAN;
  190.         filler2:                BOOLEAN;
  191.         refCon:                    LONGINT;
  192.         itemsID:                INTEGER;
  193.         title:                    Str255;
  194.     END;
  195.     DialogTPtr = ^DialogTemplate;
  196.     DialogTHndl = ^DialogTPtr;
  197.  
  198.     AlertTemplate = RECORD
  199.         boundsRect:                Rect;
  200.         itemsID:                INTEGER;
  201.         stages:                    StageList;
  202.     END;
  203.     AlertTPtr = ^AlertTemplate;
  204.     AlertTHndl = ^AlertTPtr;
  205.  
  206.     SelectionRange = RECORD
  207.         beginSelection:            SInt16;
  208.         endSelection:            SInt16;
  209.     END;
  210.  
  211. PROCEDURE InitDialogs(ignored: UNIV Ptr);
  212.     {$IFC NOT GENERATINGCFM}
  213.     INLINE $A97B;
  214.     {$ENDC}
  215. PROCEDURE ErrorSound(soundProc: SoundUPP);
  216.     {$IFC NOT GENERATINGCFM}
  217.     INLINE $A98C;
  218.     {$ENDC}
  219. FUNCTION NewDialog(wStorage: UNIV Ptr; {CONST}VAR boundsRect: Rect; title: ConstStr255Param; visible: BOOLEAN; procID: INTEGER; behind: WindowRef; goAwayFlag: BOOLEAN; refCon: LONGINT; itmLstHndl: Handle): DialogRef;
  220.     {$IFC NOT GENERATINGCFM}
  221.     INLINE $A97D;
  222.     {$ENDC}
  223. FUNCTION GetNewDialog(dialogID: INTEGER; dStorage: UNIV Ptr; behind: WindowRef): DialogRef;
  224.     {$IFC NOT GENERATINGCFM}
  225.     INLINE $A97C;
  226.     {$ENDC}
  227. PROCEDURE CloseDialog(theDialog: DialogRef);
  228.     {$IFC NOT GENERATINGCFM}
  229.     INLINE $A982;
  230.     {$ENDC}
  231. PROCEDURE DisposeDialog(theDialog: DialogRef);
  232.     {$IFC NOT GENERATINGCFM}
  233.     INLINE $A983;
  234.     {$ENDC}
  235. PROCEDURE ParamText(param0: ConstStr255Param; param1: ConstStr255Param; param2: ConstStr255Param; param3: ConstStr255Param);
  236.     {$IFC NOT GENERATINGCFM}
  237.     INLINE $A98B;
  238.     {$ENDC}
  239. PROCEDURE ModalDialog(modalFilter: ModalFilterUPP; VAR itemHit: INTEGER);
  240.     {$IFC NOT GENERATINGCFM}
  241.     INLINE $A991;
  242.     {$ENDC}
  243. FUNCTION IsDialogEvent({CONST}VAR theEvent: EventRecord): BOOLEAN;
  244.     {$IFC NOT GENERATINGCFM}
  245.     INLINE $A97F;
  246.     {$ENDC}
  247. FUNCTION DialogSelect({CONST}VAR theEvent: EventRecord; VAR theDialog: DialogRef; VAR itemHit: INTEGER): BOOLEAN;
  248.     {$IFC NOT GENERATINGCFM}
  249.     INLINE $A980;
  250.     {$ENDC}
  251. PROCEDURE DrawDialog(theDialog: DialogRef);
  252.     {$IFC NOT GENERATINGCFM}
  253.     INLINE $A981;
  254.     {$ENDC}
  255. PROCEDURE UpdateDialog(theDialog: DialogRef; updateRgn: RgnHandle);
  256.     {$IFC NOT GENERATINGCFM}
  257.     INLINE $A978;
  258.     {$ENDC}
  259. FUNCTION Alert(alertID: INTEGER; modalFilter: ModalFilterUPP): INTEGER;
  260.     {$IFC NOT GENERATINGCFM}
  261.     INLINE $A985;
  262.     {$ENDC}
  263. FUNCTION StopAlert(alertID: INTEGER; modalFilter: ModalFilterUPP): INTEGER;
  264.     {$IFC NOT GENERATINGCFM}
  265.     INLINE $A986;
  266.     {$ENDC}
  267. FUNCTION NoteAlert(alertID: INTEGER; modalFilter: ModalFilterUPP): INTEGER;
  268.     {$IFC NOT GENERATINGCFM}
  269.     INLINE $A987;
  270.     {$ENDC}
  271. FUNCTION CautionAlert(alertID: INTEGER; modalFilter: ModalFilterUPP): INTEGER;
  272.     {$IFC NOT GENERATINGCFM}
  273.     INLINE $A988;
  274.     {$ENDC}
  275. PROCEDURE GetDialogItem(theDialog: DialogRef; itemNo: INTEGER; VAR itemType: INTEGER; VAR item: Handle; VAR box: Rect);
  276.     {$IFC NOT GENERATINGCFM}
  277.     INLINE $A98D;
  278.     {$ENDC}
  279. PROCEDURE SetDialogItem(theDialog: DialogRef; itemNo: INTEGER; itemType: INTEGER; item: Handle; {CONST}VAR box: Rect);
  280.     {$IFC NOT GENERATINGCFM}
  281.     INLINE $A98E;
  282.     {$ENDC}
  283. PROCEDURE HideDialogItem(theDialog: DialogRef; itemNo: INTEGER);
  284.     {$IFC NOT GENERATINGCFM}
  285.     INLINE $A827;
  286.     {$ENDC}
  287. PROCEDURE ShowDialogItem(theDialog: DialogRef; itemNo: INTEGER);
  288.     {$IFC NOT GENERATINGCFM}
  289.     INLINE $A828;
  290.     {$ENDC}
  291. PROCEDURE SelectDialogItemText(theDialog: DialogRef; itemNo: INTEGER; strtSel: INTEGER; endSel: INTEGER);
  292.     {$IFC NOT GENERATINGCFM}
  293.     INLINE $A97E;
  294.     {$ENDC}
  295. PROCEDURE GetDialogItemText(item: Handle; VAR text: Str255);
  296.     {$IFC NOT GENERATINGCFM}
  297.     INLINE $A990;
  298.     {$ENDC}
  299. PROCEDURE SetDialogItemText(item: Handle; text: ConstStr255Param);
  300.     {$IFC NOT GENERATINGCFM}
  301.     INLINE $A98F;
  302.     {$ENDC}
  303. FUNCTION FindDialogItem(theDialog: DialogRef; thePt: Point): INTEGER;
  304.     {$IFC NOT GENERATINGCFM}
  305.     INLINE $A984;
  306.     {$ENDC}
  307. FUNCTION NewColorDialog(dStorage: UNIV Ptr; {CONST}VAR boundsRect: Rect; title: ConstStr255Param; visible: BOOLEAN; procID: INTEGER; behind: WindowRef; goAwayFlag: BOOLEAN; refCon: LONGINT; items: Handle): DialogRef;
  308.     {$IFC NOT GENERATINGCFM}
  309.     INLINE $AA4B;
  310.     {$ENDC}
  311. FUNCTION GetAlertStage : INTEGER;
  312.     {$IFC NOT CFMSYSTEMCALLS}
  313.     INLINE $3EB8, $0A9A;            { MOVE.W $0A9A,(SP) }
  314.     {$ENDC}
  315.  
  316. PROCEDURE ResetAlertStage;
  317.     {$IFC NOT GENERATINGCFM}
  318.     INLINE $4278, $0A9A;
  319.     {$ENDC}
  320. PROCEDURE DialogCut(theDialog: DialogRef);
  321. PROCEDURE DialogPaste(theDialog: DialogRef);
  322. PROCEDURE DialogCopy(theDialog: DialogRef);
  323. PROCEDURE DialogDelete(theDialog: DialogRef);
  324. PROCEDURE SetDialogFont( value: INTEGER );
  325.     {$IFC NOT CFMSYSTEMCALLS}
  326.     INLINE $31DF, $0AFA;            { MOVE.W (SP)+,$0AFA }
  327.     {$ENDC}
  328.  
  329. PROCEDURE AppendDITL(theDialog: DialogRef; theHandle: Handle; method: DITLMethod);
  330. FUNCTION CountDITL(theDialog: DialogRef): INTEGER;
  331. PROCEDURE ShortenDITL(theDialog: DialogRef; numberItems: INTEGER);
  332. FUNCTION StdFilterProc(theDialog: DialogRef; VAR event: EventRecord; VAR itemHit: INTEGER): BOOLEAN;
  333. FUNCTION GetStdFilterProc(VAR theProc: ModalFilterUPP): OSErr;
  334.     {$IFC NOT GENERATINGCFM}
  335.     INLINE $303C, $0203, $AA68;
  336.     {$ENDC}
  337. FUNCTION SetDialogDefaultItem(theDialog: DialogRef; newItem: INTEGER): OSErr;
  338.     {$IFC NOT GENERATINGCFM}
  339.     INLINE $303C, $0304, $AA68;
  340.     {$ENDC}
  341. FUNCTION SetDialogCancelItem(theDialog: DialogRef; newItem: INTEGER): OSErr;
  342.     {$IFC NOT GENERATINGCFM}
  343.     INLINE $303C, $0305, $AA68;
  344.     {$ENDC}
  345. FUNCTION SetDialogTracksCursor(theDialog: DialogRef; tracks: BOOLEAN): OSErr;
  346.     {$IFC NOT GENERATINGCFM}
  347.     INLINE $303C, $0306, $AA68;
  348.     {$ENDC}
  349. {$IFC OLDROUTINENAMES }
  350. {$IFC NOT GENERATINGCFM }
  351. PROCEDURE CouldDialog(dialogID: INTEGER);
  352.     {$IFC NOT GENERATINGCFM}
  353.     INLINE $A979;
  354.     {$ENDC}
  355. PROCEDURE FreeDialog(dialogID: INTEGER);
  356.     {$IFC NOT GENERATINGCFM}
  357.     INLINE $A97A;
  358.     {$ENDC}
  359. PROCEDURE CouldAlert(alertID: INTEGER);
  360.     {$IFC NOT GENERATINGCFM}
  361.     INLINE $A989;
  362.     {$ENDC}
  363. PROCEDURE FreeAlert(alertID: INTEGER);
  364.     {$IFC NOT GENERATINGCFM}
  365.     INLINE $A98A;
  366.     {$ENDC}
  367. {$ENDC}
  368. PROCEDURE DisposDialog(theDialog: DialogRef);
  369.     {$IFC NOT GENERATINGCFM}
  370.     INLINE $A983;
  371.     {$ENDC}
  372. PROCEDURE UpdtDialog(theDialog: DialogRef; updateRgn: RgnHandle);
  373.     {$IFC NOT GENERATINGCFM}
  374.     INLINE $A978;
  375.     {$ENDC}
  376. PROCEDURE GetDItem(theDialog: DialogRef; itemNo: INTEGER; VAR itemType: INTEGER; VAR item: Handle; VAR box: Rect);
  377.     {$IFC NOT GENERATINGCFM}
  378.     INLINE $A98D;
  379.     {$ENDC}
  380. PROCEDURE SetDItem(theDialog: DialogRef; itemNo: INTEGER; itemType: INTEGER; item: Handle; {CONST}VAR box: Rect);
  381.     {$IFC NOT GENERATINGCFM}
  382.     INLINE $A98E;
  383.     {$ENDC}
  384. PROCEDURE HideDItem(theDialog: DialogRef; itemNo: INTEGER);
  385.     {$IFC NOT GENERATINGCFM}
  386.     INLINE $A827;
  387.     {$ENDC}
  388. PROCEDURE ShowDItem(theDialog: DialogRef; itemNo: INTEGER);
  389.     {$IFC NOT GENERATINGCFM}
  390.     INLINE $A828;
  391.     {$ENDC}
  392. PROCEDURE SelIText(theDialog: DialogRef; itemNo: INTEGER; strtSel: INTEGER; endSel: INTEGER);
  393.     {$IFC NOT GENERATINGCFM}
  394.     INLINE $A97E;
  395.     {$ENDC}
  396. PROCEDURE GetIText(item: Handle; VAR text: Str255);
  397.     {$IFC NOT GENERATINGCFM}
  398.     INLINE $A990;
  399.     {$ENDC}
  400. PROCEDURE SetIText(item: Handle; text: ConstStr255Param);
  401.     {$IFC NOT GENERATINGCFM}
  402.     INLINE $A98F;
  403.     {$ENDC}
  404. FUNCTION FindDItem(theDialog: DialogRef; thePt: Point): INTEGER;
  405.     {$IFC NOT GENERATINGCFM}
  406.     INLINE $A984;
  407.     {$ENDC}
  408. FUNCTION NewCDialog(dStorage: UNIV Ptr; {CONST}VAR boundsRect: Rect; title: ConstStr255Param; visible: BOOLEAN; procID: INTEGER; behind: WindowRef; goAwayFlag: BOOLEAN; refCon: LONGINT; items: Handle): DialogRef;
  409.     {$IFC NOT GENERATINGCFM}
  410.     INLINE $AA4B;
  411.     {$ENDC}
  412. PROCEDURE DlgCut(theDialog: DialogRef);
  413. PROCEDURE DlgPaste(theDialog: DialogRef);
  414. PROCEDURE DlgCopy(theDialog: DialogRef);
  415. PROCEDURE DlgDelete(theDialog: DialogRef);
  416. PROCEDURE SetDAFont(fontNum: INTEGER);
  417.     {$IFC NOT GENERATINGCFM}
  418.     INLINE $31DF, $0AFA;
  419.     {$ENDC}
  420. {$ENDC}
  421.  
  422. {$ALIGN RESET}
  423. {$POP}
  424.  
  425. {$SETC UsingIncludes := DialogsIncludes}
  426.  
  427. {$ENDC} {__DIALOGS__}
  428.  
  429. {$IFC NOT UsingIncludes}
  430.  END.
  431. {$ENDC}
  432.